//package com.myproject.config;
//
//import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;
//import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
//import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.LinkedHashMap;
//
//@Configuration
//public class ShiroConfig {
//
//    //ShiroFilterFactorybean
//    @Bean
//    public ShiroFilterFactoryBean getShiroFilterFactoryBean(@Qualifier("securityManager") DefaultWebSecurityManager defaultWebSecurityManager){
//        ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
//        //设置安全管理器
//        bean.setSecurityManager(defaultWebSecurityManager);
//        /**
//         * anon:无需认证就可访问
//         * authc:必须认证才能访问
//         * user:必须拥有记住我功能才能使用
//         * perms:拥有对某个资源的权限才能访问
//         * role:拥有某个角色权限才能访问
//         */
//
//        //拦截
//        LinkedHashMap<String, String> map = new LinkedHashMap<>();
////        map.put("/user/add","authc");
////        map.put("/user/update","authc");
//        //正常情况，未授权会跳转到未授权页面
//        map.put("/user/add","perms[user:add]");
//        map.put("/user/update","perms[user:update]");
//        map.put("/user/**","authc");
//
//        bean.setFilterChainDefinitionMap(map);
//        bean.setLoginUrl("/index");
//
//        //设置未授权页面
//        bean.setUnauthorizedUrl("/noauth");
//        return bean;
//    }
//
//    //DefaultWebSecurityManager
//    @Bean(name = "securityManager")
//    public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("userRealm") com.myproject.config.UserRealm userRealm){
//        DefaultWebSecurityManager securityManager=new DefaultWebSecurityManager();
//        //关联userRealm
//        securityManager.setRealm(userRealm);
//        return securityManager;
//    }
//
//    //创建realm对象
//    @Bean
//    public com.myproject.config.UserRealm userRealm(){
//        return new com.myproject.config.UserRealm();
//    }
//
//
//    //整合ShiroDialect ：用来整合shiro thymeleaf
//    @Bean
//    public ShiroDialect getShiroDialect(){
//            return new ShiroDialect();
//    }
//}
